代码必须是本着写给人阅读的原则来编写,只不过顺便给机器执行而已。

                      —《计算机程序设计与解释》

  对于程序员来说,代码风格的重要性自然是不必多说的,我曾经买过一本《Java编程风格》,我们想想光是代码风格就要写成一本书,是多么让人头疼。而Go语言很有可能是第一个将代码风格强制统一的语言。一些在其他语言中编译器可以通过的问题,在Go编译器中会被认为是编译错误。由于刚好Go语言强制规定的代码形式都是我常用的,也是我很喜欢的,所以非常幸运啊。。(这也是我喜欢Go语言的一个重要原因)。

  Go语言关于编码规范的问题,主要分为两类,一是:由编译器进行的强制代码规范;二是:由go fmt 格式化的非强制性编码风格。

  Go语言的强制代码规范是Go设计者认为最需要统一的风格。首先,就是命名,Go语言对于可见性的规则不像C语言用 private public 等关键字来声明可见性,而是规定暴露于外部的名字用大写开头,不需要暴露的用小写字母开头。目前比较流行的命名法有两种:骆驼命名法 和 下划线法。Go语言明确宣告支持骆驼命名法,排斥下划线法。虽然以前写C语言都用的是下划线法,但是后来用php,js,python什么的用的是都是骆驼命名法,而且骆驼命名法打起来明显比下划线法方便,所以也是很喜欢。

  还有就是关于花括号的问题。最初的风格为K&R,后来又有了MS风格,可能因为Go语言的设计者有Ken Thompson,所以,,我们还是使用他所创的那种风格吧。而且我觉得这样写代码更加紧凑,而且清晰度也很高。

  另外Go工具链中还有个go fmt用来格式化代码。它可以调整语句的位置,重新摆放花括号的位置,以制表符来缩进,添加空格等等。

  总的来说,Go语言的代码规范可以算是集C语言出世这几十年来的思想之大成,优雅,规范,非常对我胃口



blog comments powered by Disqus

Published

2013-08-19

Categories


Tags